package com.yunzhisec.event;



import java.io.Serializable;

/**
 * 事件处理包装类，用于封装事件。
 * @author lly
 *
 */
public class HandleObject implements Serializable {
    
	private static final long serialVersionUID = 1L;
	/**
     * 字符事件类型
     */
	public static final int TYPE_CHAR=1;
	/**
	 * 字节事件类型
	 */	
    public static final int TYPE_BYTE=2;
    /**
     * 关联事件
     */
	public static final int TYPE_EVENT=3;
    /**
	 * 没有解析的外部事件
	 */	
    public static final int STATUS_NOPARSE=0;
    /**
	 * 无需解析的内部的事件，例如监控部分的事件。
	 */	
    public static final int STATUS_PARSE=1;
    /**
	 * 上下级转发事件
	 */	
    public static final int STATUS_TRANSFER=2;
    

	/**
	 * 采集的Syslog事件。
	 */	
	public static final int COLLECT_SYSLOG=2;
	/**
	 * 采集的snmp trap的事件。
	 */		
	public static final int COLLECT_SNMPTRAP=3;
	/**
	 * 采集的流量事件，例如netflow等。
	 */	
	public static final int COLLECT_FLOW=4;
	/**
	 * 通过文件方式采集的事件。
	 */
	public static final int COLLECT_FILE=5;
	/**
	 * 通过数据库采集的事件。
	 */
	public static final int COLLECT_DB=6;
	/**
	 * 通过网络嗅探采集的事件。
	 */
	public static final int COLLECT_SNIFFER=7;
    
	/**
	 * 通过WMI采集的事件。
	 */
	public static final int COLLECT_WMI=8;

	/**
	 * 通过FTP采集的事件。
	 */
	public static final int COLLECT_FTP=9;
	
	
	/**
	 * 通过监控采集的事件。
	 */
	public static final int COLLECT_MONITOR=10;

	/**
	 * 通过其他方式采集的事件
	 */
	public static final int COLLECT_OTHER=100;
	
	
    /**
     * 事件格式类型
     */
    public int type=TYPE_CHAR;
    /**
     * 事件解析状态
     */
    public int status=STATUS_NOPARSE;
    /**
     * 事件采集方式
     */
    public int collect=COLLECT_SYSLOG;
    /**
     * 事件源IP
     */
    public String sourceip= LocalAddressUtil.getIp();;
    /**
     * 事件采集IP
     */
    public String collectip= LocalAddressUtil.getIp();;
    /**
      * EventObject用于内部事件，转发事件，网管部分发送的事件或者能够明确构造事件类的事件。
     */
    public EventObject content=null;
    
    /**
     * 事件内容，用于Syslog,NetFlow事件保存数据流;
     */
    public byte[] contentbyte=null;
}
